Platform Explorer / Nuxeo Platform 2023.14

Contribution org.nuxeo.ecm.platform.video.tools.commandlines--command

This contribution is part of XML component org.nuxeo.ecm.platform.video.tools.commandlines inside nuxeo-platform-video-2023.14.23.jar /OSGI-INF/video-tools-commandlines-contrib.xml

Extension Point

Extension point command of component CommandLineExecutorComponent.

Registration Order

10
The registration order represents the order in which this contribution was registered on its target extention point. This will impact the override/merge behaviour when it is implemented on the target service, and is useful for proper customization of existing contributions.
You can influence this order by adding "require" tags in the containing component declaration, to make sure it is resolved after another component (see "Resolution Order" on components).

Contributed Items

  • <command enabled="true" name="videoClosedCaptionsExtractor">
          <commandLine>ccextractor</commandLine>
          <parameterString>#{sourceFilePath} -out=#{outFormat} -trim -o #{outFilePath}
          </parameterString>
          <installationDirective>You need to install ccextractor.</installationDirective>
        </command>
  • <command enabled="true" name="videoPartClosedCaptionsExtractor">
          <commandLine>ccextractor</commandLine>
          <parameterString>#{sourceFilePath} -out=#{outFormat} -startat #{startAt} -endat #{endAt} -trim -o #{outFilePath}
          </parameterString>
          <installationDirective>You need to install ccextractor.</installationDirective>
        </command>
  • <command enabled="true" name="videoConcat">
          <commandLine>ffmpeg</commandLine>
          <parameterString>-y -f concat -safe 0 -i #{listFilePath} -c copy #{outFilePath}</parameterString>
          <installationDirective>You need to install ffmpeg.</installationDirective>
        </command>
  • <command enabled="true" name="videoSlicerByCopy">
          <commandLine>ffmpeg</commandLine>
          <parameterString>-y -i #{sourceFilePath} -ss #{startAt} -t #{duration} -c copy #{outFilePath}</parameterString>
          <installationDirective>You need to install ffmpeg.</installationDirective>
        </command>
  • <command enabled="true" name="videoSlicer">
          <commandLine>ffmpeg</commandLine>
          <parameterString>-y -i #{sourceFilePath} -ss #{startAt} -t #{duration} #{outFilePath}</parameterString>
          <installationDirective>You need to install ffmpeg.</installationDirective>
        </command>
  • <command enabled="true" name="videoSlicerStartAt">
          <commandLine>ffmpeg</commandLine>
          <parameterString>-y -i #{sourceFilePath} -ss #{startAt} #{outFilePath}</parameterString>
          <installationDirective>You need to install ffmpeg.</installationDirective>
        </command>
  • <command enabled="true" name="videoSlicerSegments">
          <commandLine>ffmpeg</commandLine>
          <parameterString>-y -i #{sourceFilePath} -map 0 -c copy -f segment -segment_time #{duration} -reset_timestamps 1
            #{outFilePath}
          </parameterString>
          <installationDirective>You need to install ffmpeg.</installationDirective>
        </command>
  • <command enabled="true" name="videoWatermarkWithPicture">
          <commandLine>ffmpeg</commandLine>
          <parameterString>-y -i #{sourceFilePath} -i #{pictureFilePath} -filter_complex #{filterComplex} #{outFilePath}
          </parameterString>
          <installationDirective>You need to install ffmpeg.</installationDirective>
        </command>

XML Source

<extension point="command" target="org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent">

    <command enabled="true" name="videoClosedCaptionsExtractor">
      <commandLine>ccextractor</commandLine>
      <parameterString>#{sourceFilePath} -out=#{outFormat} -trim -o #{outFilePath}
      </parameterString>
      <installationDirective>You need to install ccextractor.</installationDirective>
    </command>

    <command enabled="true" name="videoPartClosedCaptionsExtractor">
      <commandLine>ccextractor</commandLine>
      <parameterString>#{sourceFilePath} -out=#{outFormat} -startat #{startAt} -endat #{endAt} -trim -o #{outFilePath}
      </parameterString>
      <installationDirective>You need to install ccextractor.</installationDirective>
    </command>

    <command enabled="true" name="videoConcat">
      <commandLine>ffmpeg</commandLine>
      <parameterString>-y -f concat -safe 0 -i #{listFilePath} -c copy #{outFilePath}</parameterString>
      <installationDirective>You need to install ffmpeg.</installationDirective>
    </command>

    <!-- This one is very fast, but you may miss frames. Use it when you are sure you'll get the correct cut -->
    <command enabled="true" name="videoSlicerByCopy">
      <commandLine>ffmpeg</commandLine>
      <parameterString>-y -i #{sourceFilePath} -ss #{startAt} -t #{duration} -c copy #{outFilePath}</parameterString>
      <installationDirective>You need to install ffmpeg.</installationDirective>
    </command>

    <!-- This on is the basic slicing. It re-encodes the video, so it it is slower than videoSlicerCopy -->
    <command enabled="true" name="videoSlicer">
      <commandLine>ffmpeg</commandLine>
      <parameterString>-y -i #{sourceFilePath} -ss #{startAt} -t #{duration} #{outFilePath}</parameterString>
      <installationDirective>You need to install ffmpeg.</installationDirective>
    </command>

    <!-- This enables video slicing starting from the specific time -->
    <command enabled="true" name="videoSlicerStartAt">
      <commandLine>ffmpeg</commandLine>
      <parameterString>-y -i #{sourceFilePath} -ss #{startAt} #{outFilePath}</parameterString>
      <installationDirective>You need to install ffmpeg.</installationDirective>
    </command>

    <!-- Slices in n segment of #duration each. outFilePath is an expression
         (OUT%03d.mp4 for example) so ffmpeg creates one file/segment -->
    <command enabled="true" name="videoSlicerSegments">
      <commandLine>ffmpeg</commandLine>
      <parameterString>-y -i #{sourceFilePath} -map 0 -c copy -f segment -segment_time #{duration} -reset_timestamps 1
        #{outFilePath}
      </parameterString>
      <installationDirective>You need to install ffmpeg.</installationDirective>
    </command>

    <!-- filterComplex is the full filter. For example: "overlay=10:10" -->
    <command enabled="true" name="videoWatermarkWithPicture">
      <commandLine>ffmpeg</commandLine>
      <parameterString>-y -i #{sourceFilePath} -i #{pictureFilePath} -filter_complex #{filterComplex} #{outFilePath}
      </parameterString>
      <installationDirective>You need to install ffmpeg.</installationDirective>
    </command>

  </extension>